﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;

namespace ivvExportacao
{
    public class ponderador
    {
        public string transfeririPonderadores()
        {
            try
            {
                //ACESSO AS DUAS BASE DE DADOS, FORAM ABERTAS TRÊS CONEXÕES DIFERENTES PORQUE SERÃO UTILIZADAS EM 
                //TRÊS TAREFAS DOIS SELECT's E UM INSERT.
                SqlConnection conexaoAntiga = new SqlConnection(ConfigurationManager.AppSettings["baseDadosAntiga"]);
                conexaoAntiga.Open();
                SqlConnection conexaoNovaInsert = new SqlConnection(ConfigurationManager.AppSettings["baseDadosNova"]);
                conexaoNovaInsert.Open();
                SqlConnection conexaoNovaDelete = new SqlConnection(ConfigurationManager.AppSettings["baseDadosNova"]);
                conexaoNovaDelete.Open();

                //DELETAR TODOS OS PONDERADORES EXISTENTES PARA CADASTRA-LOS NOVAMENTE
                string deletePonderador = "delete from ponderador";

                SqlCommand cmdDeletePonderador = new SqlCommand(deletePonderador, conexaoNovaDelete);
                cmdDeletePonderador.ExecuteNonQuery();

                //SELECT NA TABELA DO BANCO DE DADOS ANTIGO PARA COMEÇAR A TRANSFERÊNCIA
                string selectAntiga = "select * from ponderadores";

                SqlCommand cmdAntiga = new SqlCommand(selectAntiga, conexaoAntiga);
                SqlDataReader drAntiga = cmdAntiga.ExecuteReader();

                if (drAntiga.HasRows)
                {
                    while (drAntiga.Read())
                    {
                        //ESTA SESSÃO APENAS É ACESSADA CASO O DADO AINDA NÃO TENHA CIDO TRANSFERIDO PARA A NOVA TABELA
                        string insertNova = "insert into ponderador (descricaoPonderador, pesoComercialPonderador, pesoResidencialPonderador, codigoExtrato, anoPonderador, mesPonderador) values ";
                        insertNova += "('" + drAntiga["ponderador"].ToString() + "', '" + drAntiga["IVV_comer"].ToString() + "', '" + drAntiga["IVV_Resid"].ToString() + "', ";
                        insertNova += "" + drAntiga["estrato"].ToString() + ", '" + drAntiga["ANO_MES"].ToString().Substring(0, 4) + "', '" + drAntiga["ANO_MES"].ToString().Substring(4, 2) + "')";

                        SqlCommand cmdInsertNova = new SqlCommand(insertNova, conexaoNovaInsert);
                        cmdInsertNova.ExecuteNonQuery();
                    }
                }

                drAntiga.Close();

                conexaoAntiga.Close();
                conexaoNovaInsert.Close();
                conexaoNovaDelete.Close();

                return "<span style=\"color:Green\">Registro dos ponderadores transferidos com sucesso.</span>";
            }
            catch
            {
                return "<span style=\"color:Red\">Falha ao transferir os dados dos ponderadores.</span>";
            }
        }
    }
}
